

/**
 * 
 * Date   21/07/2010      Intervenant Fewzi MOKADDEM  MICROPOLE
 * @param txt
 * @param replace
 * @param with_this
 * @return
 */
function replaceAll(txt, replace, with_this) {
  return txt.replace(new RegExp(replace, 'g'),with_this);
}


/**
 * 
 * @return
 */
function fabriquerTableauxErreursIntrospection(){
	
	//TODO: a faire introspecter tous les champs en saisie a la recherche  getActiveError
}

/**
 * 
 * 
 * Date   21/07/2010      Intervenant Fewzi MOKADDEM  MICROPOLE
 * @param pErreursDuServeur
 * @return
 */
function fabriquerTableauxErreurs(pErreursDuServeur){
    var  listeErreurString = Ext.util.JSON.encode(pErreursDuServeur);
    listeErreurString = replaceAll(listeErreurString,"{"," ");
    listeErreurString = replaceAll(listeErreurString,"}"," ");
    listeErreurString = replaceAll(listeErreurString,"\""," ");
    var tabErreurs = listeErreurString.split(',');
    var listErreurs= new Array();
    for(j=0;j<tabErreurs.length;j++){
        var cur= tabErreurs[j].split(':');
        listErreurs[j]={idchamps:'' ,champs:'',message:''};
        try{
        	//listErreurs[j].champs = Ext.getCmp(cur[0].trim()).label;
        	listErreurs[j].champs = Ext.getCmp(cur[0].trim()).initialConfig.fieldLabel;
        }catch(exception){
        	listErreurs[j].champs=cur[0].trim();
        }
        try{
        	listErreurs[j].message = Ext.getCmp(cur[0].trim()).getActiveError();
        }catch(exception){
        	listErreurs[j].message=cur[1].trim();
        }
        listErreurs[j].idchamps=cur[0].trim();
    }
    return listErreurs;
}



/**
 *
 * Date   21/07/2010      Intervenant Fewzi MOKADDEM  MICROPOLE
 * @param erreursDuServeur
 * @return
 */
function remplirErreurDansPopup(erreursDuServeur){
    	
   
    	var listErreurs=fabriquerTableauxErreurs(erreursDuServeur);
    
   		var tplListeErreurHtml = new Ext.Template("<li><b class=\'champs\' onClick= \'Ext.get(\"{idchamps}\").focus();\'>{champs} :</b><b class=\'message\'>{message}</b></li>");
    	tplListeErreurHtml.compile();

        var contenu ="";

        for(i=0;i<listErreurs.length;i++){
        	contenu=contenu+tplListeErreurHtml.apply(listErreurs[i]);
        }

        Ext.get('erreur').update(contenu);

}


/**
 *
 * 
 * Date   21/07/2010      Intervenant Fewzi MOKADDEM  MICROPOLE
 * @param erreursDuServeur
 * @return
 */
function fabriquerWindowErreurs(erreursDuServeur){

        // creer une window la premiere fois
        if(!winErreur){
        	winErreur = new Ext.Window({
                applyTo:'hello-win',
                id:'windowErreurs',
                width:500,
                height:200,
                pageX:195,
                pageY:150,
                closeAction:'hide',
                plain: true,
                items: new Ext.Panel({
                    applyTo: 'hello-tabs',
                    deferredRender:false,
                    border:false
                }),
                buttons: [
                {
                    text: 'Close',
                    handler: function(){
                	         winErreur.hide();
                    }
                }]
            });
        }
        winErreur.on('close', function(e){
        	winErreur.hide();
        });
        Ext.get('erreur').update('');
        remplirErreurDansPopup(erreursDuServeur);
  
}
 
/**
 * 
 * 
 * Date   21/07/2010      Intervenant Fewzi MOKADDEM  MICROPOLE
 * @return
 */
function afficherWinErreur(){
	
	if(winErreur){
		winErreur.show();
	}
}